import { AuthConfig } from './auth.config';
import * as jwt from 'jsonwebtoken';

/**
 * JWT工具类
 */
export class JwtUtil {
  /**
   * 生成JWT令牌
   * @param payload 载荷数据
   * @returns JWT令牌
   */
  static generateToken(payload: any): string {
    return jwt.sign(payload, AuthConfig.jwtSecret, {
      expiresIn: AuthConfig.expiresIn,
    });
  }

  /**
   * 验证JWT令牌
   * @param token JWT令牌
   * @returns 解析后的载荷数据或null
   */
  static verifyToken(token: string): any {
    try {
      return jwt.verify(token, AuthConfig.jwtSecret);
    } catch (error) {
      return null;
    }
  }

  /**
   * 解码JWT令牌（不验证签名）
   * @param token JWT令牌
   * @returns 解码后的载荷数据
   */
  static decodeToken(token: string): any {
    return jwt.decode(token);
  }
}